home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
commodore-users-of-norman
/
CUON_03_(08-1984).d64
/
stock market2.c3
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
11KB
|
424 lines
1 GOTO910
2 REM ** ML STOP KEY DISABLE **
3 PRINT"x[169]=[141][169][141]X` [234][255][169][255][133][145]L4[234]x[169]1[141][169][234][141]X`
4 [153]"xhhh+hNOThhhhhhhPRINT#HRUNHX`111"
5 [153]"hhhhhhh`1"
6 [143] ** 4 - POP ML SUBROUTINE **
10 [143] **GENERAL INPUT ROUTINE **
15 :
30 :
35 [143] +++ INPUT SECTION +++
40 [151]UO,0:UR$[178]"":UI$[178]""
42 [139]UL[178]0[167]UL[178]80
45 [153]" CMDCMD";:[151]UC,0
50 [161]UI$:[139]UI$[178]""[167]50
55 [139]UI$[178][199](13)[175][195](UR$)[177][178]1[167][151]UC,1:[153]" CMD";:[137]85
60 [139]UI$[178][199](20)[167]105
62 [139] [195](UR$)[178][177]UL[167]50
65 [141]120:[143] CHECK FOR VALID CHARACTER
70 UR$[178]UR$[170]UI$
75 [153]UI$;
80 [137]50
85 [143] +++ CHECK FOR HELP REQUEST +++
90 [139]UR$[178]UX$[167]195:[143] EXIT TO HELP ROUTINE
95 [139]UF[178]1[167][141]240
100 UF[178]0:[153]:[142]
102 [143] ++ CHECK DELETE ++
105 [139][195](UR$)[179]1[167]50
110 UR$[178][200](UR$,[195](UR$)[171]1)
115 [153]"CMD CMDCMD";:[137]50
120 [143] ++ CHECK FOR VALID CHARACTERS ++
125 [139][195](US$)[178]0[167]150
130 [129]US[178]1[164][195](US$)
135 [139]UI$[178][202](US$,US,1)[167][142]
140 [130]
145 UI$[178]"":[142]
150 [143] ** STANDARD INPUT **
152 [139][198](UI$)[178]46[167][142]
155 [139]UI$[178][199](32)[167][142]
160 [139][198](UI$)[179]48[176][198](UI$)[177]57[167]170
165 [142]
170 [139][198](UI$)[179]65[176][198](UI$)[177]90[167]180
175 [142]
180 [139][198](UI$)[179]193[176][198](UI$)[177]218[167]UI$[178]"":[142]
185 [139][194](UT)[178]UU%[167]UI$[178][199]([198](UI$)[171]128):[142]
187 [142]
190 UI$[178]"":[142]
195 UF[178]1:[143] +++ HELP ROUTINE EXIT +++
197 [141]250
200 [141]245
205 [129]UQ[178]UB[164](U2%[172]256[170]U1%[170]U3%[171]2)
210 UQ%(UQ[171]UB)[178][194](UQ):[130]:[153]"LOAD"
215 UZ[178]1:UV%[178][194](UT)
216 [137]300
217 UZ[178]0:US$[178]UJ$:UG$[178]UK$:UP[178]UJ:UL[178]UK
218 [139][194](50003)[178]0[167][151]53281,1:[153]"LOAD";:[151]53281,6:[151]53280,14:[137]220
219 [153]"LOAD";
220 UT$[178]UL$:[151]UT,UV%:[129]UQ[178]UB[164](U2%[172]256[170]U1%[170]U3%[171]3)
225 [151]UQ,UQ%(UQ[171]UB):[130]
230 [151]U1,U1%
232 [151]U2,U2%
233 [151]U4,U4%
234 [151]U3,U3%[171]1
235 [137]35
240 UD%[178]((U2%[172]256[170]U1%[170]U3%)[171]UB)[173]40:[153][200](UD$,UD%[170]1):[142]
245 [153][200](UD$,24);" HELP COMING WAIT ":[142]
250 U1%[178][194](U1):U2%[178][194](U2):U3%[178][194](U3):U4%[178][194](U4)
251 UJ$[178]US$:UK$[178]UG$:UL$[178]UT$:UJ[178]UP:UK[178]UL
255 [142]
300 [143] ** MENU **
301 :
302 [153]"LOAD":[151]UT,UU%:[139][194](50003)[178]0[167][151]53281,9:[151]53280,8
303 :
305 [153]" MENU"
310 [153]" --------------------------------------"
315 [153]" 1. BEGIN STOCK MARKET 2"
320 [153]" 2. STUDENT INSTRUCTIONS"
325 [153]" 3. TEACHER INSTRUCTIONS"
335 [153]" 4. QUIT"
340 [153]" --------------------------------------"
345 [153]" PRESS A NUMBER KEY (1-4) ";
350 UL[178]1:US$[178]"1234":[141]35:[143] INPUT ROUTINE
352 US$[178]""
355 [145][197](UR$)[141]1000,400,500,396
360 [137]300
395 [143] ** RE-ENABLE STOP KEY AND END **
396 [139][194](50003)[179][177]1[175][194](50003)[179][177]160[175][194](50003)[179][177]0[167]399
397 [158]UU[170]71:[139][194](50003)[178]0[167][151]53281,6:[151]53280,14
398 [153]"CONTLOAD":[128]
399 [141]875:[142]
400 [143] ** STUDENT INSTRUCTIONS **
405 [153]"LOAD":[151]UT,UL%:[139][194](50003)[178]0[167][151]53281,0:[151]53280,0
410 UP[178]0:UG$[178]"(null)TUDENT RIGHT$NST":[141]850
412 [153] " (null)HISCLOSEGAMECLOSEPLAYSCLOSETHECLOSESTOCKCLOSEMARKET.CLOSE(null)OU"
413 [153] " WILLCLOSEBECLOSEGIVEN $10,000 AND MAY BUY OR"
414 [153] " SELLCLOSESTOCKS. (null)HECLOSESTOCKCLOSEPRICESCLOSEWILL"
416 [153] " BECLOSEGENERATEDCLOSERANDOMLYCLOSEANDCLOSETHEREFORE"
417 [153] " THISCLOSEMODELCLOSEDOESCLOSENOT REPRESENT EXACTLY"
418 [153] " WHAT HAPPENSCLOSEONCLOSETHECLOSEEXCHANGE. "
420 [141]835:[141]850
422 [153]" ATN TABLE OFCLOSEAVAILABLECLOSESTOCKS, THEIR"
423 [153]" PRICES AND THECLOSENUMBERCLOSEOFCLOSESHARES IN"
424 [153]" YOUR PORTFOLIO WILLCLOSEBECLOSEPRINTED.
425 PRINT" [198]OLLOWING[160]THIS, THE INITIALS OF EACH"
426 PRINT" STOCK[160]WILL[160]BE[160]PRINTED WITH A QUESTION"
427 PRINT" MARK. [200]ERE YOU INDICATE A TRANSACTION."
428 PRINT" [212]O[160]BUY[160]A STOCK TYPE +[206][206][206], TO SELL"
431 PRINT " TYPE -[206][206][206], WHERE[160][206][206][206][160]IS THE NUMBER OF"
432 PRINT" SHARES."
435 GOSUB835:GOSUB850
436 PRINT" [193][160]BROKERAGE[160]FEE[160]OF 1% WILL[160]BE[160]"
438 PRINT" CHARGED ON[160]ALL[160]TRANSACTIONS.
439 [153]" (null)OTECLOSETHATCLOSEIFCLOSEACLOSESTOCKS VALUECLOSEDROPS "
440 [153]" TO ZERO ITCLOSEMAYCLOSEREBOUND TOCLOSEACLOSEPOSITIVE"
441 [153]" VALUE AGAIN."
485 [141]835
490 [139]UZ[178]1[167][158]UP%:[137]217
499 [142]
500 [143] ** TEACHER INSTRUCTIONS **
501 [153]"LOAD":[151]UT,UL%:[139][194](50003)[178]0[167][151]53281,2:[151]53280,10
502 UP[178]0:UG$[178]"(null)EACHER RIGHT$NST":[141]850
503 [153]" (null)O THE BEST OF OUR KNOWLEDGE,"
504 [153]" THIS PROGRAM IS IN THE PUBLIC"
505 [153]" DOMAIN. RIGHT$F THIS IS NOT THE CASE"
506 [153]" PLEASE CONTACT:"
507 [153]" LENOMMODORE PEEKUSINESS (null)ACHINES"
508 [153]" 3370 (null)HARMACY ATNVE.
509 PRINT" [193]GINCOURT, [207]NTARIO"
510 PRINT" [195]ANADA [205]1[215] 2[203]4"
511 PRINT" (416) 499-4292"
512 UP=1:GOSUB 835:GOSUB 850:
513 PRINT" [208]ROGRAM [206]AME: [211]TOCK [205]ARKET 2
514 [153]" (null)RITTEN PEEKY : (null)NKNOWN
515 PRINT" [213]PGRADED [194]Y :
516 [153]" (null)HIS PROGRAM WILL RUN ON ANY
519 PRINT" [208][197][212] 64 [195][207][205][208][213][212][197][210]
520 [153]" LEN(null)(null)(null)(null)STR$(null)(null)VAL 64 LEN(null)(null)(null)(null)(null)VAL(null)
521 GOSUB835
590 IFUZ=1THENSYSUP%:GOTO217
599 RETURN
600 REM ** PROGRAM MODIFICATION INST **
601 PRINT"[147]":POKEUT,UL%
605 UP=0:UG$="[208]ROGRAM [205]OD":GOSUB850
660 GOSUB835
690 IFUZ=1THENSYSUP%:GOTO217
699 RETURN
700 REM ** TO USE 8032 LOAD CBM4032 **
710 PRINT"[147]BEFORE RUNNING THIS PROGRAM ON AN 8032
720 [153]" LOAD THE 'CBM 4032' PROGRAM"
730 [158]UU[170]71
740 [128]
800 [143] ** T I T L E P A G E **
802 [153]"LOAD";:[151]UT,UU%:[139][194](50003)[178]0[167][151]53280,14:[151]53281,6
804 [129]I[178]1[164]38:[153]"SPC(WAIT";:[130]
806 [129]I[178]1[164]22:[153]"CMDSPC(WAIT";:[130]
808 [129]I[178]1[164]37:[153]"CMDCMDSPC(WAIT";:[130]
810 [129]I[178]1[164]22:[153]"ONCMDSPC(WAIT";:[130]
812 [153]"STEP WAIT
814 PRINT" [146] [146][169]
816 [153]" WAIT TAB((null)
818 PRINT"[223] [146]
820 [153]"C O M M O D O R E
822 PRINT"EDUCATIONAL
824 [153]"SOFTWARE
826 REM ** COMMODORE LOGO **
827 PRINTLEFT$(UD$,24);"PRESS SPACE BAR OR WAIT[146]":I=0
828 GETA$:IFA$<>" "THENI=I+1:IFI<250THEN828
830 T1$="":T2$="":T3$="":T4$="":I=0
832 GOTO300
835 REM ** SPACE BAR PRESS **
840 POKEUO,0:PRINTLEFT$(UD$,24);"PRESS SPACE BAR TO CONTINUE[146]"
844 GETUI$:IFUI$<>" "THEN844
846 RETURN
850 REM ** PAGE DESIGN ROUTINE **
852 UP=UP+1
855 PRINT"[147]"LEFT$(UT$+UP$,21);RIGHT$(UP$+UG$+STR$(UP),18)
860 PRINT" --------------------------------------"
864 IFUH<>0THEN870
865 REMPRINTLEFT$(UD$,24);LEFT$(UP$,7);"HELP - PRESS H <RETURN>"
870 UH=0:PRINT"":RETURN
875 REM ** PLEASE WAIT REMARK **
880 PRINTLEFT$(UD$,24);" ONE MOMENT PLEASE... "
885 RETURN
900 REM ** SET UP VARIABLES **
901 UX$="H":DIMUQ%(1000):UB=32768:U1=196:U2=197:U3=198:U4=216:UC=167:UU=1024
902 UT=59468:UU%=12:UL%=14:UP%=1146:UM=32768:UO=158:POKE 50003,0
903 IFPEEK(50003)=0THENUB=1024:U1=209:U2=210:U3=211:U4=214:UC=204:UU=2048
904 IFPEEK(50003)=0THENUT=53272:UU%=21:UL%=23:UP%=2139:UM=1024:UO=198
905 UD$=""
906 UP$=" "
907 UT$=" [211]TOCK [205]ARKET 2[160][160][160][160]":REM PLACE PROGRAM TITLE HERE !!!!!!!!!!!!!!!!!***
908 RETURN
910 REM ** SET VARIABLES **
915 GOSUB900
920 REM ** CHECK FOR 8032 **
925 PRINT"[147]":PRINT"[160]":REM SHIFTED SPACE
930 IFPEEK(UB+40)<>96THENGOSUB700
931 REM ** MEMORY CHECK **
932 IF FRE(0)>2000THEN937
933 PRINT"[147]THIS MACHINE DOES NOT HAVE ENOUGH"
934 PRINT"MEMORY TO RUN THIS PROGRAM !"
935 SYSUU+71
936 END
937 PRINT"[147]":IFPEEK(50003)=0THEN962
940 REM ** BASIC 2.0 OR 4.0 OR C-64 SETUP **
941 POKE1075,133:POKE1076,144:POKE1077,234:POKE1079,4:POKE1080,133:POKE1081,145
942 POKE1091,155:POKE1098,133:POKE1099,144:POKE1100,234:POKE1103,133
943 POKE1104,145:POKE1105,234:POKE1082,234
945 IFPEEK(50003)<>160THEN955
950 POKE1093,88:POKE1094,228:POKE1097,85:POKE1102,228:GOTO965
955 IFPEEK(50003)<>1THEN990
960 POKE1093,49:POKE1094,230:POKE1097,46:POKE1102,230:GOTO965
962 POKE2099,141:POKE2100,20:POKE2101,3:POKE2103,8:POKE2104,141:POKE2105,21
963 POKE2106,3:POKE2115,145:POKE2117,52:POKE2118,234:POKE2121,49:POKE2122,141
964 POKE2123,20:POKE2124,3:POKE2126,234:POKE2127,141:POKE2128,21:POKE2129,3
965 SYSUU+48:REM DISABLE STOP KEY
970 GOSUB800:REM TITLE
980 GOTO300:REM MENU
990 PRINT"[147]THE PGM WILL NOT WORK ON THIS MACHINE!":END
1000 IFUZ=1THENSYSUP%:SYSUP%:UZ=0:REM ** PROGRAM STARTS HERE **
1001 PRINT"[147]";:RESTORE:IFPEEK(50003)=0THENPOKE53281,6:POKE53280,14
1002 UG$=""
1005 GOTO1110
1010 PRINT "[147][211][212][207][195][203][160][205][193][210][203][197][212]":
1020 PRINT TAB(10);"[195][210][197][193][212][201][214][197][160][195][207][205][208][213][212][201][206][199]"
1030 PRINT TAB(12);"[208].[207]. [194][207][216] 789-[205]"
1040 PRINT TAB(5);"[205][207][210][210][201][211][212][207][215][206], [206][197][215][160][202][197][210][211][197][217] 07960"
1050 K=TI
1060 IF TI < K+200 AND K <= TI THEN 1060
1070 PRINT "[147]";
1080 REM ******************************
1090 REM *THIS PROGRAM USES LOWER CASE*
1100 REM ******************************
1110 POKE UT,UL%
1130 X=1
1140 A=INT((RND(1)/10)*100+.5)/100
1150 T5=0
1160 X9=0:N1=0:N2=0:E1=0:E2=0
1170 UP=0:GOSUB850:GOTO1400
1180 GET Z$:IF Z$="" OR (Z$ <> "Y" AND Z$<> "N") THEN 1180
1190 PRINT Z$
1200 IF Z$="N" THEN 1400
1380 UP=0:UG$="DAY":GOSUB850
1400 REM
1410 REM
1420 S(1)=100:S(2)=85:S(3)=150:S(4)=140:S(5)=110
1430 PRINT
1440 REM
1450 T8=INT(4.99*RND(1)+1)
1460 REM
1470 IF RND(1) > .2 THEN 1490
1480 A=-A
1490 REM
1500 GOSUB 2560
1510 REM
1520 FOR I=1 TO 5
1530 P(I)=0:Z(I)=0
1540 NEXT I
1550 PRINT
1560 REM
1570 C=10000
1580 REM
1590 PRINT "[145][145] [211][212][207][195][203]";TAB(28);"[208][210][201][195][197]/[211][200][193][210][197]"
1600 PRINT " [201]NT.[160][194]ALLISTIC[160][205]ISSILES";TAB(29);S(1)
1610 PRINT " [210]ED[160][195]ROSS[160]OF[160][193]MERICA";TAB(29);S(2)
1620 PRINT " [204]ICHTENSTEIN,[160][194]UMRAP, & [202]OKE";TAB(29);S(3)
1630 PRINT " [193]MERICAN[160][194]ANKRUPT[160][195]O.";TAB(29);S(4)
1640 PRINT " [195]ENSURED [194]OOKS[160][211]TORE";TAB(29);S(5)
1650 REM
1660 REM
1670 Z4=Z5:Z5=0
1680 T=0
1690 FOR I=1 TO 5
1700 Z5=Z5+S(I)
1710 T=T+S(I)*P(I)
1720 NEXT I
1730 Z5=INT(100*(Z5/5)+.5)/100
1740 Z6=INT((Z5-Z4)*100+.5)/100
1750 REM
1760 D=T+C
1770 IF X9 > 0 THEN 1800
1780 PRINT " [212]ORONTO[160][211]TOCK[160][197]XCHANGE[160][193]VERAGE:";Z5
1790 GOTO 1810
1800 PRINT " [212]ORONTO[160][211]TOCK[160][197]XCHANGE[160]AVERAGE:";Z5:PRINT" [206]ET[160]CHANGE:";Z6
1810 REM
1820 T=INT(100*T+.5)/100
1830 PRINT " [212]OTAL[160]STOCK[160]ASSETS[160]ARE[160] $";T
1840 C=INT(100*C+.5)/100
1850 PRINT " [212]OTAL[160]CASH[160]ASSETS[160]ARE $";C
1860 D=INT(100*D+.5)/100
1870 PRINT " [212]OTAL[160]ASSETS[160]ARE $";D
1890 IF X9=0 THEN 1940
1940 US$="-0123456789H":UL=4
1950 PRINT " [215]HAT[160]IS[160]YOUR[160]TRANSACTION[160]IN"
1960 PRINT " [201][194][205]? [157][157][157][157]";
1970 GOSUB35:Z(1)=VAL(UR$)
1980 PRINT " [210][195][193]? [157][157][157][157]";
1990 GOSUB35:Z(2)=VAL(UR$)
2000 PRINT " [204][194][202]? [157][157][157][157]";
2010 GOSUB35:Z(3)=VAL(UR$)
2020 PRINT " [193][194][195]? [157][157][157][157]";
2030 GOSUB35:Z(4)=VAL(UR$)
2040 PRINT " [195][194][211]? [157][157][157][157]";
2050 GOSUB35:Z(5)=VAL(UR$)
2060 PRINT
2070 REM
2080 P5=0
2090 REM
2100 S5=0
2110 FOR I=1 TO 5
2120 Z(I)=INT(Z(I)+.5)
2130 IF Z(I) <= 0 THEN 2160
2140 P5=P5+Z(I)*S(I)
2150 GOTO2200
2160 S5=S5-Z(I)*S(I)
2170 IF -Z(I) <= P(I) THEN 2200
2180 PRINT"[145][145]"
2182 PRINT " [217]OU[160]HAVE[160]OVERSOLD[160]A[160]STOCK; TRY[160]AGAIN."
2183 PRINT"[145][145][145][145][145][145][145][145]"
2190 GOTO 1950
2200 NEXT I
2210 REM
2220 T5=P5+S5
2230 REM
2240 B5=INT(.01*T5*100+.5)/100
2250 REM
2260 REM
2270 C5=C-P5-B5+S5
2280 IF C5 >= 0 THEN 2310
2285 PRINT"[145]"UP$:PRINT"[145][145]"
2290 PRINT" [217]OU[160]HAVE[160]USED ";-C5; "TOO MUCH."
2300 PRINT"[145][145][145][145][145][145][145][145]":GOTO1950
2310 C=C5
2320 REM
2330 FOR I=1 TO 5
2340 P(I)=P(I)+Z(I)
2350 NEXT I
2360 REM
2370 GOSUB 2560
2380 REM
2390 UG$="DAY":GOSUB850
2400 REM
2420 REM
2430 PRINT TAB(4);"[208][210][201][195][197]/";TAB(30);"[206][197][212] [208][210][201][195][197]"
2440 PRINT " [211][212][203]";TAB(5);"[211][200][193][210][197]";TAB(11);"[200][207][204][196][201][206][199][211]";TAB(21);"[214][193][204][213][197]";TAB(30);
2450 PRINT "[195][200][193][206][199][197]":PRINT
2460 PRINT " [201][194][205]";TAB(4);S(1);TAB(13);P(1);TAB(20);S(1)*P(1);TAB(31);C(1)
2470 PRINT " [210][195][193]";TAB(4);S(2);TAB(13);P(2);TAB(20);S(2)*P(2);TAB(31);C(2)
2480 PRINT " [204][194][202]";TAB(4);S(3);TAB(13);P(3);TAB(20);S(3)*P(3);TAB(31);C(3)
2490 PRINT " [193][194][195]";TAB(4);S(4);TAB(13);P(4);TAB(20);S(4)*P(4);TAB(31);C(4)
2500 PRINT " [195][194][211]";TAB(4);S(5);TAB(13);P(5);TAB(20);S(5)*P(5);TAB(31);C(5)
2510 X9=1
2540 GOTO1650
2550 REM
2560 REM
2570 REM
2580 REM
2590 REM
2600 REM
2610 REM
2620 IF N1 > = 0 THEN 2660
2630 I1=INT(4.99*RND(1)+1)
2640 N1=INT(4.99*RND(1)+1)
2650 E1=1
2660 REM
2670 IF N2 > 0 THEN 2710
2680 I2=INT(4.99*RND(1)+1)
2690 N2=INT(4.99*RND(1)+1)
2700 E2=1
2710 REM
2720 N1=N1-1
2730 N2=N2-1
2740 REM
2750 FOR I=1 TO 5
2760 X1=RND(1)
2770 IF X > .25 THEN 2800
2780 X1=.25
2790 GOTO 2880
2800 IF X1 > .50 THEN 2830
2810 X1=.5
2820 GOTO 2880
2830 IF X1 > .75 THEN 2860
2840 X1=.75
2850 GOTO2880
2860 X1=0
2870 REM
2880 W3=0
2890 IF E1 < 1 THEN 2940
2900 IF INT(I1+.5) <> INT(I+.5) THEN 2940
2910 REM
2920 W3=10
2930 E1=0
2940 IF E2 < 1 THEN 3000
2950 IF INT(I2+.5) <> INT(I+.5) THEN 3000
2960 REM
2970 W3=W3-10
2980 E2=0
2990 REM
3000 C(I)=INT(A*S(I))+X1+INT(3-6*RND(1)+.5)+W3
3010 C(I)=INT(100*C(I)+.5)/100
3020 S(I)=S(I)+C(I)
3030 IF S(I) > 0 THEN 3070
3040 C(I)=0
3050 S(I)=0
3060 GOTO3080
3070 S(I)=INT(100*S(I)+.5)/100
3080 NEXT I
3090 REM
3100 T8=T8-1
3110 IF T8 < 1 THEN 3130
3120 RETURN
3130 REM
3140 REM
3150 T8=INT(4.99*RND(1)+1)
3160 A=INT((RND(1)/10)*100+.5)/100
3170 S4=RND(1)
3180 IF S4 <= .5 THEN 3200
3190 A=-A
3200 RETURN
3210 PRINT " [200][207][208][197] [217][207][213] [200][193][196] [198][213][206]!!"
3220 GOSUB835:RETURN
3230 IF TI < K+300 AND K <= TI THEN 3230
3240 PRINT "[147] [194][217][197]"
3250 END